package leetcode;

/**
 * description:
 * author:zt
 * date:2024-08-31
 */

/**
 * 给你一个二维 3 x 3 的矩阵 grid ，每个格子都是一个字符，要么是 'B' ，要么是 'W' 。字符 'W' 表示白色，字符 'B' 表示黑色。
 *
 * 你的任务是改变 至多一个 格子的颜色，使得矩阵中存在一个 2 x 2 颜色完全相同的正方形。
 *
 * 如果可以得到一个相同颜色的 2 x 2 正方形，那么返回 true ，否则返回 false 。
 */
public class leetcode3127 {

    public static void main(String[] args) {
        char[][] chars = new char[][]{{'B', 'W', 'B'}, {'W', 'B', 'W'}, {'B', 'W', 'B'}};
        System.out.println(canMakeSquare(chars));
    }

    public static boolean canMakeSquare(char[][] grid) {
        if (grid.length == 0 || grid.length > 3) return false;
        if (grid[0].length == 0 || grid[0].length > 3) return false;

        for (int i = 0; i <= 1; i++) {
            for (int j = 0; j <= 1; j++) {
                int black = 0, white = 0;
                if ('B' == grid[i][j]) {
                    black ++;
                } else {
                    white ++;
                }
                if ('B' == grid[i+1][j]) {
                    black ++;
                } else {
                    white ++;
                }
                if ('B' == grid[i][j+1]) {
                    black ++;
                } else {
                    white ++;
                }
                if ('B' == grid[i+1][j+1]) {
                    black ++;
                } else {
                    white ++;
                }

                if (black != white) return true;
            }
        }
        return false;
    }
}
